1. לזהות קוד של LRU caching
2. לאפיין איך תשמור מילים בתוך מסמכים כדי שתוכל לשלוף את כל המסמכים בהם מופיעה מילה מסויימת
3.בהנתן מערך של מספרים, תדפיס את כל תתי הקבוצות. לדוגמא {1,2,3} צריך להדפיס את הקבוצה הריקה,1,2,3,12,13,23,123 סהכ 8 תתי קבוצות pow(2,n)
תשובות
הוסף תשובה
|
לצפיה בתשובות
מאי 2017
3. נבנה עץ בינארי בעומק N , ולפי המסלולים נדפיס את הקבוצה. לדוגמא המסלול 0,0,0 ייצג את הקבוצה הריקה
ראיון בסגנון גוגל - לפגוש הרבה מתכנתים ב 3 שעות ראיון.
שאלות מתוך הראיון
- זוג מתכנתים נתן קוד והיה צריך להגיד מה הוא עושה ומה לא תקין בו.
- מתכנת בראיון נוסף ביקש לתכנן מערכת שמקבלת מספר רב של קבצי טקסט וצריך שיהיה קל בהנתן מחרוזת (ולאחר מכן זוג) לומר באילו קבצים המחרוזות מופיעות.
- מתכנת בראיון שלישי רצה לדעת איך לסנכרן HashTable בצורה טובה
תשובות
הוסף תשובה
|
לצפיה בתשובות
אפריל 2017
- הקוד היה של cache עם TTL. בקוד שניתן לי היו הרבה בעיות (העדר שימוש בממשקים, בעיות אנקפסולציה, חוסר קריאות וכו'). המראיינים כיוונו לבעיה המרכזית - הקוד לא מסונכרן בשלב הניקיון של ה TTL. דנו בכל מיני דרכים לסנכרנו.
- בקבצים הראיון הוא מתגלגל. בהתחלה כמובן שמבצעים מיפוי מ Hash שמכיל את שם הקובץ (אותו ניתן לבחור כרצוננו) לקבוצת המילים שמופיעות בו. לאחר מכן מתחילים לשפר ומגיעים למפת ביטים שמייצגת את הקבצים ואילו המפתח כאן (בניגוד לפיתרון הנאיבי) הוא המילה. לאחר מכן ניתן עוד לשפר ע"י צמצום אפסים\אחדות כאשר יש מרווחים גדולים שווים, מאחר שמילים כמו the/a יחזרו על עצמם הרבה פעמים.
- לתאר כיצד ConcurrentHashMap ממומש ב JAVA (בכלל דבר טוב שכל מפתח ידע. מדובר בנעילה חלקית של ה HashTable).